.\"   $Id: mapabloperexpr.3,v 1.1 2002/03/18 11:06:16 ludo Exp $
.\" @(#)mapabloperexpr.2 2.7 96/07/02 ; Labo masi cao-vlsi; Author : Jacomme Ludovic
.TH MAPABLOPEREXPR 3 "October 1, 1997" "ASIM/LIP6" "ABL FUNCTIONS"
.SH NAME
mapabloperexpr \- applies a function to all operands.
.so man1/alc_origin.1
.SH SYNOPSIS
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "abl101.h"
chain_list \(**mapabloperexpr( Function, Oper, Expr )
  chain_list \(** (\(**Function)();
  long       Oper;
  chain_list \(**Expr;
.ft R
.fi
.SH PARAMETERS
.TP 20
.TP
\fIFunction\fP
Function name to apply to all operands.
.TP
\fIOper\fP
Operator number.
.TP
\fIExpr\fP
Expression to scan.
.SH DESCRIPTION
\fBmapabloperexpr\fP applies \fIFunction\fP to all operands of \fIExpr\fP.
\fBmapabloperexpr\fP creates a head of an operator expression having
\fIOper\fP as operator and adds the arguments calculated by applying
\fIFunction\fP to each arguments of \fIExpr\fP.
\fIFunction\fP must return an expression and must have a 
unique expression as argument.
.br
.SH RETURN VALUE
\fBmapabloperexpr\fP returns a new expression by applying \fIFunction\fP
to all the arguments of the operator expression \fIExpr\fP.
.SH EXAMPLE
.ta 3n 6n 9n 12n 15n 18n 21n
.nf
.if n \{\
.ft B \}
.if t \{\
.ft CR \}
#include "abl101.h"
   chain_list \(**MapFunction( MapExpr )
      chain_list \(**MapExpr;
   {
     return( createablnotexpr( dupablexpr( MapExpr ) ) );
   }
   chain_list \(**Expr;
   chain_list \(**Expr1;
   Expr = createablbinexpr( ABL_NOR,
                            createablatom( "a" ),
                            createablatom( "b" ) );
   Expr1 = mapabloperexpr( MapFunction, ABL_AND, Expr );
   /* displays ((not a) and (not b))  */
   viewablexpr( Expr1, ABL_VIEW_VHDL );
.ft R
.fi
.SH SEE ALSO
.BR abl (1)


.so man1/alc_bug_report.1

